#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h> //进程等待相关函数头文件
#include<stdlib.h>
int main()
{
  //创建两个子进程
  pid_t id1 = fork();
  if(id1 == 0)
  {
    //子进程创建成功，创建孙子进程
    pid_t id2 = fork();
    if(id2 == 0)
    {
      printf("我是孙子进程，PID:%d   PPID:%d\n", getpid(), getppid());
      exit(1); //孙子进程运行结束后，退出
    }

      wait(0);  //等待孙子进程运行结束
      printf("我是子进程，PID:%d   PPID:%d\n", getpid(), getppid());
      exit(1);  //子进程运行结束后，退出
  }

  wait(0);  //等待子进程运行结束
  printf("我是父进程，PID:%d   PPID:%d\n", getpid(), getppid());

  return 0; //父进程运行结束后，退出
}


























